#ifndef _H_I_SERVICE_ADAPTER_H_
#define _H_I_SERVICE_ADAPTER_H_

#include "../typedefine.h"
#include "SServiceFrontendID.h"
#include "CServiceFrontendHelper.h"

namespace QWER
{
	QCLASS IRunner;

	QDLL_EXPORT QCLASS IServiceFrontend QABSTRACT
	{
	public:
		IServiceFrontend();
#ifndef _USING_CLI
		~IServiceFrontend();
#endif

	protected:
		virtual void _Awake(CServiceFrontendHelper* poHelper) = 0;

	private:
		PTR(CServiceFrontendHelper) m_poHelper;

#ifdef _USING_CLI
	internal:
#else
	private:
		friend class IRunner;
#endif
		void _ExecAwake();
		inline PTR(CServiceFrontendHelper) _ServiceFrontendHelper() { return m_poHelper; }
	};
}

#endif
